package com.echo.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * AI生成的学生答题情况分析和反馈表
 * </p>
 *
 * @author echo
 * @since 2024-11-05
 */
@Data
@TableName("exam_analysis")
public class ExamAnalysis implements Serializable {

    private static final long serialVersionUID = 1L;
    //关联的课程id，专为某个课程而创建的试卷
    private Integer courseId;
    /**
     * 评价主键ID
     */
    @TableId(value = "analysis_id", type = IdType.AUTO)
    private Integer analysisId;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private String userId;

    /**
     * 试卷ID
     */
    @TableField("exam_id")
    private String examId;
    @TableField("result_desc")
    private String resultDesc;
    @TableField("exam_score")
    private int examScore;
    @TableField("exam_name")
    private String examName;
    /**
     * 用户对同一试卷的第几次尝试
     */
    @TableField("attempt_number")
    private Integer attemptNumber;

    /**
     * 考试正确率，以百分比表示
     */
    @TableField("correct_rate")
    private BigDecimal correctRate;

    /**
     * 知识点掌握情况分析
     */
    @TableField("knowledge_mastery")
    private String knowledgeMastery;

    /**
     * 薄弱知识点
     */
    @TableField("weak_points")
    private String weakPoints;

    /**
     * 建议复习的知识点
     */
    @TableField("suggested_review_topics")
    private String suggestedReviewTopics;
    @TableField("que_correct_user_ans")
    private String queCorrectUserAns;
    /**
     * AI生成的答题表现总结
     */
    @TableField("performance_summary")
    private String performanceSummary;
    @TableField("exam_type")
    private String examType;
    /**
     * AI改进建议
     */
    @TableField("improvement_suggestions")
    private String improvementSuggestions;

    /**
     * 评价生成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

}
